package co.com.inventarios.logica;

import java.util.List;

import co.com.inventarios.modelo.Bodega;
import co.com.inventarios.modelo.Cataventa;
import co.com.inventarios.modelo.CataventaWork;
import co.com.inventarios.modelo.Catvtapro;
import co.com.inventarios.modelo.CatvtaproId;
import co.com.inventarios.modelo.CatvtaproWork;
import co.com.inventarios.persistencia.CataventaDAO;
import co.com.inventarios.persistencia.CatvtaproDAO;
import co.com.inventarios.persistencia.EntityManagerHelper;
import co.com.inventarios.persistencia.QueryBodegaDAO;
import co.com.inventarios.persistencia.QueryCataventaDAO;
import co.com.inventarios.persistencia.QueryCatvtaproDAO;

public class CataventaLogica implements ICataventaLogica {

	public Cataventa consultarRegCataventa(String valor) throws Exception {
		return new CataventaDAO().findById(valor);
	}

	public List<Cataventa> consultarfindByPropertyAll(String propiedad,
			String valor) throws Exception {
		return new QueryCataventaDAO().findByPropertyAll(propiedad, valor);
	}

	public CataventaWork[] findCataventaSelectedRow(List<Cataventa> lista)
			throws Exception {
		CataventaWork doc;
		int max = lista.size();
		CataventaWork[] arrayDoc = new CataventaWork[max];
		if (lista != null) {
			for (int i = 0; i < max; i++) {
				doc = new CataventaWork();
				doc.setCataventaw(lista.get(i));
				arrayDoc[i] = doc;
			}
		}
		return arrayDoc;
	}

	public CatvtaproWork[] findCataventaproSelectedRow(List<Catvtapro> lista)
			throws Exception {
		CatvtaproWork doc;
		int max = lista.size();
		CatvtaproWork[] arrayDoc = new CatvtaproWork[max];
		if (lista != null) {
			for (int i = 0; i < max; i++) {
				doc = new CatvtaproWork();
				doc.setCatvtaprow(lista.get(i));
				arrayDoc[i] = doc;
			}
		}
		return arrayDoc;
	}
	
	
	public List<Catvtapro> findCataventapro(String Catalogo) throws Exception {
		return new QueryCatvtaproDAO().findCataventaPro_list(Catalogo);
	}
	
	public Cataventa findByPropertyActivo(String propiedad, String valor)
			throws Exception {
		return new QueryCataventaDAO().findByPropertyActivo(propiedad, valor);
	}

	public List<Cataventa> findAll(String expresion) throws Exception {
		return new QueryCataventaDAO().findBy_all(expresion);
	}

	public List<Cataventa> findByPropertyActivoLista(String propiedad)
			throws Exception {
		return new QueryCataventaDAO().findByPropertyActivoLista(propiedad);
	}

	public List<Cataventa> findByPropertyAll(String propiedad, String valor,
			String expresion) throws Exception {
		return new QueryCataventaDAO().findByPropertyAll(propiedad, valor,
				expresion);
	}

	public void Eliminar_Cataventa(Cataventa reg) throws Exception {
		try {
			EntityManagerHelper.getEntityManager().getTransaction().begin();
			new CataventaDAO().delete(reg);
			EntityManagerHelper.getEntityManager().getTransaction().commit();
		} catch (Exception ex) {
			ex.printStackTrace();
			EntityManagerHelper.getEntityManager().getTransaction().rollback();
		}

	}
	
	public void Eliminar_CataventaPro(Catvtapro reg) throws Exception {
		try {
			EntityManagerHelper.getEntityManager().getTransaction().begin();
			new CatvtaproDAO().delete(reg);
			EntityManagerHelper.getEntityManager().getTransaction().commit();
		} catch (Exception ex) {
			ex.printStackTrace();
			EntityManagerHelper.getEntityManager().getTransaction().rollback();
		}

	}
	
	public void Guarda_CataventaPro(Catvtapro reg) throws Exception {
		try {
			EntityManagerHelper.getEntityManager().getTransaction().begin();
			new CatvtaproDAO().save(reg);
			EntityManagerHelper.getEntityManager().getTransaction().commit();
		} catch (Exception ex) {
			ex.printStackTrace();
			EntityManagerHelper.getEntityManager().getTransaction().rollback();
		}

	}

	public Catvtapro Busca_CataventaPro(CatvtaproId reg) throws Exception {
			return new CatvtaproDAO().findById(reg);
	}
	
	public void Guarda_Cataventa(Cataventa reg) throws Exception {
		try {
			EntityManagerHelper.getEntityManager().getTransaction().begin();
			new CataventaDAO().save(reg);
			EntityManagerHelper.getEntityManager().getTransaction().commit();
		} catch (Exception ex) {
			ex.printStackTrace();
			EntityManagerHelper.getEntityManager().getTransaction().rollback();
		}

	}

	public void Modifica_Cataventa(Cataventa reg) throws Exception {
		try {
			EntityManagerHelper.getEntityManager().getTransaction().begin();
			new CataventaDAO().update(reg);
			EntityManagerHelper.getEntityManager().getTransaction().commit();
		} catch (Exception ex) {
			ex.printStackTrace();
			EntityManagerHelper.getEntityManager().getTransaction().rollback();
		}

	}

}
